iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
0
自我挑戰組

滿滿的紅寶石不拿嗎?-- 去吧!我把世界上的一切都放在那裡了! 系列 第 3

資料型態 <> Ruby 語言也有惡魔果實圖鑑 - 滿滿的紅寶石不拿嗎?

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20200911/20128363axIGxxLL6E.jpg

[Day03] 帶著愉悅的心情欣賞 Ruby 吧!

來到了第三天,要開始在 irb 裡試著輸入程式碼囉!來找出 Ruby 裡有哪些惡魔果實資料型態吧!

字串

字串(String)可以是「一個單字」或「一段文字」:

"Hello World".class
=> String

'你寫鐵人賽了嗎?'.class
=> String

"どうぞよろしくおねがいします".class
=> String 

想要用單引號或是雙引號都是可以的!


數字

  • 整數 (Interger)
  • 浮點數 (Float)

就是你我都熟悉的 11 路公車(誤),數字又分成整數和浮點數兩種:

123.class
=> Integer 

3.14.class
=> Float 

(說個冷知識,大家知道為什麼印度人發明了數字,但它卻被稱做阿拉伯數字嗎?)


陣列

陣列(Array),不就是阿公常在用的分裝藥盒?每次可以按順序打開其中一格,避免大家忘記它長什麼樣子我來貼張圖:

它真的很方便,可以一次放入多個資料,然後用 [] 前後包起來,每組資料用,區隔,這樣阿公吃藥時就不會搞混啦!

話不多說直接進 irb 玩看看:

heros = ["琦玉", "傑諾斯", "龍捲"]

heros.class
=> Array

如此一來,變數 heros 就包含了3位英雄,分別是:

  • heros[0] = "琦玉"
  • heros[1] = "傑諾斯"
  • heros[2] = "龍捲"

電腦算東西的方式是從 0 開始算,所以陣列裡每個元素對應的位置也是0, 1, 2, 3, 4...依序下去。


雜湊

在學 Ruby 之前,我對雜湊(Hash)完全不了解,後來發現其實就是改頭換面的陣列(?),它的語法是用{}前後包裹,裡面的資料是兩兩一組對應的 key 和 value

太複雜?沒關係我們直接看 code:

cat = {:name=>"阿肥", :type=>"橘貓"} 

cat.class
=> Hash

也可以寫成:

cat = {name: "阿肥", type: "橘貓"}

Ruby的新式寫法看起來是不是更棒。

在這個雜湊 cat 裡有兩個 key ,分別是 nametype ,而 "阿肥""橘貓" 則是其對應的 value。

雜湊裡的資料不需要按順序,每次要取用資料會用 key 去找:

cat[:name]
 => "阿肥" 

cat[:type]
 => "橘貓" 

不過如果拿著 value 去找 key 是找不到的。

cat["橘貓"]
 => nil 

變數

說到變數(Variable)大家一定不陌生,它就是數學課上會的好朋友 x 或 y,我們總是會先假設 x 或 y 等於某個數字,然後再去計算結果,想起當年解函式的快樂了嗎(?)

a = 3

a
=> 3 

在 Ruby 的世界也是一樣,會用 = 把東西指定給變數,在定義了一個變數之後,只要呼叫該變數,結果就會等同輸入等號右邊的東西。事實上,不一定只有數字能被指定給變數,今天提到的資料型態都可以拿來指定給變數。

b = "認真刷題"

b
=> "認真刷題" 

c = [1 ,2, 3]

c
=> [1, 2, 3] 

d = {name: "阿肥", type: "橘貓"}

d
=> {:name=>"阿肥", :type=>"橘貓"} 

要注意,如果不小心使用到 關鍵字 當作變數的名稱,可是會噴錯的噢!這點在各個程式語言應該都是一樣的。


補充一點,字串裡也可以帶入變數:

name = "阿肥"
 => "阿肥" 

puts "早安! #{name}今天吃飯了嗎?"
早安! 阿肥今天吃飯了嗎?"

就先到這邊啦,不過如果跟我一樣是初學者,可能會看不懂今天寫的 .classnil 是什麼,不過別急別急,後面馬上就會討論到了,還有更多關於各種資料型別的規範以及方法在等著呢! Happy Coding!


上一篇
環境安裝 <> 10個新手有9個會倒下 - 滿滿的紅寶石不拿嗎?
下一篇
變數 <> 波瀾詭譎的程式之海總是充滿變數 - 滿滿的紅寶石不拿嗎?
系列文
滿滿的紅寶石不拿嗎?-- 去吧!我把世界上的一切都放在那裡了! 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
Yuan
iT邦新手 5 級 ‧ 2020-09-18 01:11:47

(哭爆)我不允許你把阿肥跟橘貓放一起喔!!!/images/emoticon/emoticon02.gif

jrnalts iT邦新手 5 級 ‧ 2020-09-18 20:59:50 檢舉

哈哈哈好的~那下次要舉例只好用阿圓了(?)

我要留言

立即登入留言